Personnaliser votre API

Cette page est réservée aux utilisateurs qui souhaitent personnaliser un Profil API afin de répondre à leurs besoins spécifiques.

Par personnalisation, nous entendons la possibilité soit de créer un Profil API à partir de zéro, soit de modifier un profil existant en ne récupérant que les données qui vous intéressent.

Ces données utilisent les valeurs (Clés) des Attributs pour construire et définir les Colonnes de la Table.

Dans les deux cas, vous devez lier votre Profil API au Fournisseur API par le biais de son adresse URI.

Prérequis

Avant de commencer, assurez-vous que vous avez un logiciel d'archivage de fichiers tel que WinZip, 7-zip ou Winrar installé sur votre ordinateur pour extraire les Tables du Profil API.

Note

Les Tables (fichiers .rsd) sont incluses dans les fichiers de Profil API (extension.apip) où les Profils API sont compris par le système comme étant des fichiers .zip.

Les fichiers de type .rsd sont des fichiers de schéma utilisés pour :

Astuce

Nous vous recommandons vivement d'installer le logiciel Postman pour vous aider dans ce processus, car il vous donne une vue claire de la structure du Profil API (c'est-à-dire, la manière dont les Attributs sont imbriqués). Cliquez ici pour aller à leur page de téléchargement (c'est gratuit).

Paramétrer Postman

Une fois Postman installé, ouvrez Postman et faites ce qui suit :

  1. Dans le coin supérieur droit, cliquez sur l'icône des paramètres (clé) et sélectionnez Settings.
  2. Sous l'onglet General, dans le champ Max Response Size in MB, entrez 0 comme valeur, afin que Postman puisse récupérer des données de taille illimitée.
  3. Cliquez sur le X pour enregistrer votre changement.

Note

Ce changement n'est requis que la première fois que vous utilisez Postman.

Comprendre la structure des fichiers .rsd

Avant de créer le Profil API personnalisé, nous devons d'abord comprendre de quels éléments ce fichier est composé.

 

Balise Description
<api:script>

La première balise <api:script> agit comme la balise <body> dans un fichier HTML.

Ses valeurs peuvent être comprises comme celles que l'on trouve dans la balise <head> d'un fichier HTML, c'est-à-dire, que ses métadonnées restent les mêmes.

Exemple :

<api:script xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:api="http://apiscript.com/ns?v1" >

<api:info>

Cette balise définit le nom et la Description de la Table par le biais des paramètres title et desc.

Il contient également les paramètres propres aux Colonnes appelés Attributs (attr). Les Attributs qui peuvent être utilisés diffèrent d'un Fournisseur API à l'autre mais trois paramètres restent obligatoires : le nom (name), le type de données (xs:type ) et le chemin (other:xPath).

Exemple :

<api:info xmlns:other="http://apiscript.com/ns?v1" title="Covid19" desc="Get all the Covid">
     <attr name="Country"               xs:type="string"  	readonly="true"     other:xPath="Country"/>
     <attr name="Confirmed"             xs:type="integer" 	readonly="true"     other:xPath="Confirmed"/>
     <attr name="Date"                  xs:type="datetime"     readonly="true"     other:xPath="Date"/>
</api:info>

Pour le type de données (xs:type), voici une liste des valeurs les plus utilisées :

  • xs:type="string" : Entrez "string" pour récupérer des données contenant des caractères, des sauts de ligne, des retours de chariot et des caractères de tabulation.
  • xs:type="decimal" : Entrez "decimal" pour récupérer des données contenant des valeurs numériques (ex : 9.12).
  • xs:type="integer" : Entrez "integer" pour récupérer des données contenant des valeurs entières (ex : 9).
  • xs:type="date : Entrez "date" pour récupérer des données contenant la date dans le format AAAA:MM:JJ (AAAA pour l'année, MM pour le mois et JJ pour le jour).
  • xs:type="time" : Entrez "time" pour récupérer des données contenant le temps dans le format hh:mm:ss (hh pour les heures, mm pour les minutes et ss pour les secondes).
  • xs:type="datetime": Entrez "datetime" pour récupérer les données contenant la date et le temps dans le format AAAA-MM-JJThh:mm:ss (AAAA pour l'année, MM pour le mois, JJ pour le jour, T pour le début de la section du Temps, hh pour les heures, mm pour les minutes et ss pour les secondes).
<api:set>

Dans la première balise <api:script>, les Paramètres Globaux sont définis.

<api:set attr="ContentType" value="application/json" /> = indique le type de contenu qui sera renvoyé par l'API. Cette valeur ne change jamais.

<api:set attr="RepeatElement" value="/" /> = est utilisé lorsque les données à récupérer ne sont pas accessibles directement à partir du niveau Racine, c'est-à-dire, qu'il existe un sous-niveau (voir Étapes et Informations Communes pour plus de détails). Si oui, remplacez le "/" par le nom de l'élément comme Valeur. Ce point sera expliqué plus en détail dans Étapes Spécifiques à un Cas Avancé.

<api:script>

La deuxième balise <api:script> fait référence à la Méthode HTTP qui sera exécutée par le script.

Exemple :

<api:script method="GET" >

Une balise <api:set> est nécessaire pour mettre en œuvre la méthode (voir la section ci-dessous pour plus de détails).

<api:set>

La balise <api:set> dans la deuxième balise <api:script> est utilisée pour mettre en œuvre la Méthode HTTP et définit l'adresse URL (URI) à partir de laquelle les données doivent être récupérées.

En ce qui concerne les Méthodes HTTP, vous pouvez utiliser :

GET, POST, PUT/PATCH/MERGE, et DELETE qui correspondent respectvement à SELECT, INSERT, UPDATE, et DELETE.

GET est la méthode la plus utilisée.

Exemple :

<!-- For the HTTP Method -->		
  <api:script method="GET" >
    <api:set attr="method" value="GET" />
  <!-- To define the source (URL) from which the data come from --> 
    <api:set attr="uri" value="https://api.covid19api.com/all" />

<api:call>

Cette balise est utilisée pour appeler des opérations par le biais du paramètre op. Elle sera suivie de la balise <api:push> pour afficher (pousser) le résultat dans Data Sync. Les opérations autorisées diffèrent d'un Fournisseur API à l'autre.

Exemple :

    <api:call op="apisadoExecuteJSONGet">
      <api:push/>
    </api:call>
  </api:script>

Créer un Profil API personnalisé

Dans ce document, deux cas de création d'API seront abordés en fonction de leur niveau de difficulté, c'est-à-dire, de la manière dont les Attributs sont imbriqués.

  • Pour le cas simple, les données relatives au coronavirus COVID-19 de l'API Covid19 seront utilisées, car l'arborescence est facile à comprendre et simple (c'est-à-dire, que les Attributs sont au niveau de la Racine) pour construire et consolider votre base de connaissances.
  • Pour le cas avancé, les données relatives au Change de Devises Étrangères (ForEX)de l'API Alphavantage seront utilisées pour découvrir ce qui est impliqué lorsque les Attributs ne sont pas au niveau de la Racine.

 

Étapes et Informations Communes

  1. Ouvrez un éditeur de texte tel que Notepad et copiez-collez les lignes suivantes dans votre document :
    <api:script xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:api="http://apiscript.com/ns?v1" >
    <api:info xmlns:other="http://apiscript.com/ns?v1" title="A Title" desc="A Description">
  2. Pour les valeurs title et desc, saisissez un titre et une description (de préférence en rapport avec les informations que vous souhaitez récupérer de l'API).
  3. Enregistrez votre document en tant que fichier .rsd.
Important

La valeur de l'attribut title que vous entrez dans la balise <api:info> doit être identique au nom du fichierlors de l'enregistrement du fichier. Cette valeur est utilisée pour définir le Nom de la Table et constitue l'Identifiant Unique de l'API Web lors de l'ajout d'une Table pour une Extraction.

Exemple

  1. Allez à la section documentation du Fournisseur API. Dans le cas présent, il s'agit de l'API Covid19.
  2. Copiez l'adresse URI qui contient les données qui vous intéressent. Dans cet exemple, All Data (https://api.covid19api.com/all) est choisie pour que toutes les données puissent être récupérées.
  3. Dans Postman, cliquez sur le + à côté de l'onglet Launchpad pour en créer un.
  4. Dans le champ GET , collez l'adresse URI et cliquez sur Send.
  5. Comme vous pouvez le voir sur la capture d'écran ci-dessous, les Attributs sont accessibles directement à partir de la Racine, c'est-à-dire, qu'il n'y a pas de nom d'élément avant le signe "{".
  6. De retour à votre Notepad, ajoutez la ligne suivante pour créer les colonnes du tableau.
         <attr name="X"               		xs:type="X"  	readonly="true"     other:xPath="X"/>
  7. Pour faciliter la définition des valeurs, placez Postman sur l'un des côtés de votre écran et le Notepad sur l'autre côté.
  8. Remplacez les valeurs X comme suit :
attr name="X" Remplacez le "X" par un nom (de préférence) lié aux données qui seront récupérées dans la section other:xPath. Dans cet exemple, il s'agit de Country (Pays), Country Code (Code du Pays), Province etc.
xs:type="X" Remplacez le "X" par le type de données des attributs listés dans l'API. Dans cet exemple, il s'agirait de string si Country (Pays) ou Country Code (Code du Pays) est choisi comme Attribut ou integer si Deaths (Décès) ou Confirmed (Confirmés) est choisi (voir Comprendre la structure des fichiers .rsd pour plus de détails concernant la liste des types de données).
readonly="true" La propriété attribuée à cet attribut. Dans ce cas, cette propriété n'ajoute rien de spécial et est totalement facultative (par défaut, tous les Attributs sont lus).
Propriétés Spécifiques Si vous avez besoin d'ajouter une propriété, ce sera à cet endroit que vous devrez l'insérer. Par exemple, si vous souhaitez attribuer une Clé Primaire à un Attribut, vous pouvez ajouter key="true".
other:xPath="X" Remplacer le "X" par le chemin où se situe l'Attribut dans l'API. Dans cet exemple, comme les Attributs sont situés au niveau de la Racine, il suffit de répéter leur Nom comme valeur pour xpath.
  1. Dupliquez cette ligne pour ajouter autant d'Attributs que vous le souhaitez et modifiez les valeurs en fonction de leur Type de Données, comme indiqué dans le tableau en dessus.
  2. Une fois votre liste d'Attributs terminée, clôturez-la en ajoutant la balise </api:info>.
Exemple

Vous devriez obtenir un résultat similaire à celui-ci :

  1. Copiez et collez cette ligne dans votre Notepad pour configurer les Paramètres Globaux.
    <api:set attr="ContentType" value="application/json" />
  2. Copiez et collez les lignes suivantes pour définir la Méthode de Script qui sera utilisée.
    <api:script method="GET" >
        <api:set attr="method" value="GET" />
    	<api:set attr="uri" value="X" />
        <api:set attr="RepeatElement" value="X" />
  3. Remplacez les valeurs X comme suit :
api:set attr="uri" value="X" Remplacez le "X" par la même Adresse URI que vous avez collée dans Postman pour obtenir les données. Dans cet exemple, il s'agirait de https://api.covid19api.com/all.
api:set attr="RepeatElement" value="X" Remplacer le "X" par un "/" puisque les données de cet exemple sont extraites du niveau Racine, c'est-à-dire, qu'il n'y a pas de nom d'Attribut avant le signe "}". Voir Étapes Spécifiques à un Cas Avancé s'il y a un Élément Répété (Attribut) avec des Éléments (c'est-à-dire, des Sous-Attributs) avec des espaces dans leurs noms ou s'il y a un tableau parmi les éléments dont vous voulez extraire les données.
  1. Copiez et collez les lignes suivantes dans votre Notepad pour terminer la création de votre API Personnalisée.
    <api:call op="apisadoExecuteJSONGet">
          <api:push/>
        </api:call>
      </api:script>
     </api:script>
Exemple

Vous devriez obtenir un résultat similaire à celui-ci :

  1. Une fois le fichier .rsd complété :
    1. Suivez la procédure décrite dans Paramètres pour Custom API pour créer et configurer une nouvelle Connexion (voir Authentifications pour plus de détails).
    2. Suivez la procédure décrite dans Ajouter une Extraction et Configurer le Panneau Extraction pour définir l'extraction.
    3. Suivez la procédure décrite dans Lancer une Extraction pour récupérer les données.

Étapes Spécifiques à un Cas Avancé

Pour cette section, nous utilisons les données relatives au Change de Devises Étrangères (ForEX) de l'API Alphavantage car les Attributs ne sont pas au niveau de la Racine.

Cette section est composée de deux exemples : le premier concerne la récupération de données à partir d'un RepeatElement qui n'est pas au niveau de la Racine et le second concerne la récupération de données lorsque le RepeatElement est une Variable.

Premier Exemple

  1. Répétez les étapes décrites dans Étapes et Informations Communes jusqu'à l'étape 7.
  2. Comme vous pouvez le voir sur la capture d'écran ci-dessous, les Attributs ne sont pas accessibles directement à partir de la Racine, c'est-à-dire, qu'il y a un nom d'élément avant le signe "{". Dans ce cas, le nom de l'élément est Realtime Currency Exchange Rate.
  3. Suivez les étapes décrites dans Étapes et Informations Communes partir de l'étape 9 jusqu'à la fin pour créer votre Profil API.
  4. Pour la balise api:set attr="RepeatElement" value="X", remplacez le X par la valeur qui est placée avant le signe "{" dans le format suivant : /valeur/. Dans ce cas, il s'agit de Realtime Currency Exchange Rate.
  5. Si les Attributs comportent des caractères spéciaux tels qu'un trait de soulignement, des espaces ou des mots avec des accents, placez la valeur telle quelle entre crochets [] dans la section other:xPath.
Dans Postman Devient Dans Notepad

 

 

 

=

 

 


other:xPath="[1. From_Currency Code]"/>
other:xPath="[2. From_Currency Name]"/>
other:xPath="[3. To_Currency Code]"/>
other:xPath="[4. To_Currency Name]"/>
other:xPath="[5. Exchange Rate]"/>
other:xPath="[6. Last Refreshed]"/>
other:xPath="[7. Time Zone]"/>

Exemple

Une fois que vous avez terminé, vous devriez obtenir un résultat similaire à celui-ci :

  1. Une fois le fichier .rsd complété :
    1. Suivez la procédure décrite dans Paramètres pour Custom API pour créer et configurer une nouvelle Connexion (voir Authentifications pour plus de détails).
    2. Suivez la procédure décrite dans Ajouter une Extraction et Configurer le Panneau Extraction pour définir l'extraction.
    3. Suivez la procédure décrite dans Lancer une Extraction pour récupérer les données.

 

Deuxième Exemple

Dans cette section, nous expliquons comment récupérer des données qui ne sont pas au niveau de la Racine et lorsque le RepeatElement est une Variable.

  1. Répétez les étapes décrites dans Étapes et Informations Communes jusqu'à l'étape 7.
  2. Comme vous pouvez le voir sur la capture d'écran ci-dessous, les Attributs ne sont pas accessibles directement à partir de la Racine, c'est-à-dire, qu'il y a un nom d'élément avant le signe "{", suivi de dates aléatoires (agissant comme une Variable, car ils sont incrémentés automatiquement). Dans ce cas, le nom de l'élément est Time Series FX (Daily).
  3. Suivez les étapes décrites dans Étapes et Informations Communes partir de l'étape 9 jusqu'à la fin pour créer votre Profil API.
  4. Pour la balise api:set attr="RepeatElement" value="X", remplacez le X par la valeur qui est placée avant le signe "{" dans le format suivant /valeur/. Dans ce cas, il s'agit de Time Series FX (Daily) suivi de "/%/" pour déclarer que les dates sont des Variables.
  5. Si les Attributs comportent des caractères spéciaux tels qu'un trait de soulignement, des espacesou des mots avec des accents, placez la valeur telle quelle entre crochets [] dans la section other:xPath.
Dans Postman Devient Dans Notepad

 

 

 

 

=

 

 


other:xPath="[1. open]"/>
other:xPath="[2. high]"/>
other:xPath="[3. low]"/>
other:xPath="[4. close]"/>

Exemple

Une fois que vous avez terminé, vous devriez obtenir un résultat similaire à celui-ci :

Important

Si certains des Éléments sont présentés sous forme de Tableau ou de Liste comme dans la capture d'écran ci-dessous, dans la section other:xPath, vous devrez déclarer chaque Élément en les plaçant entre crochets [] et en remplaçant leur valeur par des nombres commençant par 0.

Dans la documentation du Fournisseur API Devient Dans Notepad

 

 

 

 

=

  1. Une fois le fichier .rsd complété :
    1. Suivez la procédure décrite dans Paramètres pour Custom API pour créer et configurer une nouvelle Connexion (voir Authentifications pour plus de détails).
    2. Suivez la procédure décrite dans Ajouter une Extraction et Configurer le Panneau Extraction pour définir l'extraction.
    3. Suivez la procédure décrite dans Lancer une Extraction pour récupérer les données.
Modifier un Profil API
  1. Allez à l'endroit où les Profils API sont stockés.
  2. Sélectionnez le fichier du Profil API (extension..apip) dont vous voulez extraire les Tables et changez son extension .apip en .zip.
  3. Utilisez votre logiciel d'archivage de fichiers (WinZip, 7-zip ou Winrar ) pour les extraire.
  4. Avec un éditeur de texte tel que Notepad, ouvrez le fichier .rsd que vous souhaitez modifier.
  5. Reportez-vous aux procédures décrites dans Étapes et Informations Communes et Étapes Spécifiques à un Cas Avancé selon l'arborescence du Profil API que vous souhaitez modifier.
Astuce

La valeur à l'intérieur de la balise <api:set attr="RepeatElement> vous donnera un indice concernant le niveau d'imbrication.

Note

S'il y a un "/" dans la balie <api:set attr="RepeatElement>, cela signifie que les Attributs sont au niveau de la Racine donc, vous devez vous référer à Étapes et Informations Communes. Si ce n'est pas le cas, reportez-vous à Étapes Spécifiques à un Cas Avancé.

Mettre à jour votre profil API dans Data Sync

Si vous apportez des modifications à votre fichier .rsd et que vous souhaitez que ces modifications soient prises en compte dans Data Sync, vous devez recréer votre Connexion. Pour ce faire :

  1. Référez-vous aux procédures décrites dans Supprimer une Extraction et Supprimer une Connexion pour supprimer l'extraction et la connexion liées au Profil API.
  2. Suivez la procédure décrite dans Paramètres pour Custom API pour créer et configurer une nouvelle Connexion (voir Authentifications pour plus de détails).
  3. Suivez la procédure décrite dans Ajouter une Extraction et Configurer le Panneau Extraction pour définir l'extraction.
  4. Suivez la procédure décrite dans Lancer une Extraction pour récupérer les données.